package mydsl;

import java.util.Iterator;

public interface BinaryTree<E> extends Tree<E> {
	// 结构
	Position<E> left(Position<E> v);
	Position<E> right(Position<E> v);
	
	// 改变
	Position<E> addRoot(E e);
	Position<E> insertLeft(Position<E> v, E e);
	Position<E> insertRight(Position<E> v, E e);
	void expandExternal (Position<E> v) throws IllegalAccessException;
	
	// 遍历
	Iterator<E> iteratorPreOrder();  // 前序
	Iterator<E> iteratorInOrder();   // 中序
	Iterator<E> iteratorPostOrder(); // 后序
	Iterator<E> iteratorLevelOrder(); // 后序

}
